﻿#pragma once
#include "CRfidReader.h"
#include "CCoreOpsDlg.h"
#include "CWalletDlg.h"
#include "CDatabaseDlg.h" 
#include "CLibraryDlg.h"   
#include "CDatabaseManager.h" 
#include "CAccessControlDlg.h"

// CICSDlg 对话框
class CICSDlg : public CDialogEx
{
	// 构造
public:
	CICSDlg(CWnd* pParent = nullptr);	// 标准构造函数
	~CICSDlg();

	// 公共接口，用于子对话框通知父窗口检查连接状态
	void CheckAndUnlockTabs();
	void SetOperator(int operatorId, int operatorRole, const CString& operatorName);

	int m_nOperatorID;   // 保存当前登录的操作员ID
	int m_nOperatorRole; // 保存当前登录的操作员角色
	bool m_isOnlineMode;

	// 对话框数据
#ifdef AFX_DESIGN_TIME
	enum { IDD = IDD_ICS_DIALOG };
#endif

protected:
	virtual void DoDataExchange(CDataExchange* pDX);	// DDX/DDV 支持

	// 状态设计
protected:
	CRfidReader      m_reader;       // 全局唯一的读卡器实例
	CDatabaseManager m_dbManager;    // 全局唯一的数据库管理器实例

	// 页面实例
	CCoreOpsDlg      m_coreOpsPage;  // 调试页面实例
	CWalletDlg       m_walletPage;   // 钱包功能页面实例
	CDatabaseDlg     m_databasePage; // 数据库功能页面实例
	CLibraryDlg      m_libraryPage; // 图书页面
	CAccessControlDlg   m_accessControlPage; //门禁

protected:

	HICON m_hIcon;

	// 生成的消息映射函数
	virtual BOOL OnInitDialog();
	afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
	afx_msg void OnPaint();
	afx_msg HCURSOR OnQueryDragIcon();
	afx_msg void OnTcnSelchangeTabMain(NMHDR* pNMHDR, LRESULT* pResult);
	DECLARE_MESSAGE_MAP()

public:
	CTabCtrl m_tabMain;
	// 新增：设为public，以便子对话框调用
	void NotifyStateChange();
};